home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_008 / src / hack.whatis.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  924b  |  49 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2. /* hack.whatis.c version 1.0.1 - whatis asks for one char only. */
  3.  
  4. #include    <stdio.h>
  5. #include "hack.h"
  6.  
  7. dowhatis()
  8. {
  9.     FILE *fp;
  10.     char bufr[BUFSZ];
  11.     register char *ep, q;
  12.     extern char readchar();
  13.  
  14.     if(!(fp = fopen("data","r")))
  15.         pline("Cannot open data file!");
  16.     else {
  17.         pline("Specify what? ");
  18.         q = readchar();
  19.         while(fgets(bufr,BUFSZ,fp))
  20.             if(*bufr == q) {
  21.                 ep = index(bufr, '\n');
  22.                 if(ep) *ep = 0;
  23.                 else impossible();
  24.                 pline(bufr);
  25.                 if(ep[-1] == ';') morewhat(fp);
  26.                 goto fnd;
  27.             }
  28.         pline("I've never heard of such things.");
  29.     fnd:
  30.         (void) fclose(fp);
  31.     }
  32. }
  33.  
  34. morewhat(fp) FILE *fp; {
  35. char bufr[BUFSZ];
  36. register char *ep;
  37.     pline("More info? ");
  38.     if(readchar() != 'y') return;
  39.     cls();
  40.     while(fgets(bufr,BUFSZ,fp) && *bufr == '\t'){
  41.         ep = index(bufr, '\n');
  42.         if(!ep) break;
  43.         *ep = 0;
  44.         myputs(bufr+1);
  45.     }
  46.     more();
  47.     docrt();
  48. }
  49.